package com.will.code;

import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.will.code.config.AutoCodeConfig;
import com.will.code.config.DbConfig;

/**
 * 别偷懒：代码千万行，注释第一行。
 *
 * @Classname: CodeAutoGenerator
 * @Date: 2019/11/26
 * @Version: 1.0.0
 * @Description: 代码自动生成
 * @Modification: ...
 */
public class CodeAutoGenerator {

    /**
     * JDBC设置
     */
    private static String DB_URL = "jdbc:mysql://127.0.0.1:3306/wblog?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
    private static String DB_DRIVER = "com.mysql.cj.jdbc.Driver";
    private static String DB_USER = "root";
    private static String DB_PASSWORD = "123456";

    /**
     * 要逆向生成的表名称
     */
    private static String[] TABLE_NAME_ARRAY = new String[]{
            "tb_equity_order"
    };

    /**
     * 数据表前缀
     */
    private static String TABLE_PREFIX = "tb";

    /**
     * 父类包名
     */
    private static String PARENT_PACKAGE_NAME = "com.cyberoller";

    /**
     * 模块名称
     */
    private static String MODULE_NAME = "mall";

    /**
     * 生成代码的author
     */
    private static String CODE_AUTHOR = "will";

    /**
     * 项目路径
     */
    private static String PROJECT_PATH = "";

    /**
     * 对于已经存在的文件，不会进行覆盖操作
     *
     * @param args
     */
    public static void main(String[] args) {
        // 代码自动生成配置对象
        AutoCodeConfig autoCodeConfig = new AutoCodeConfig();
        // 基础包名
        autoCodeConfig.setParentPackageName(PARENT_PACKAGE_NAME);
        // 模块包名
        autoCodeConfig.setModuleName(MODULE_NAME);
        // 创建者
        autoCodeConfig.setCodeAuthor(CODE_AUTHOR);
        /**
         * 生成的代码存放路径：
         * 如果projectPath为空，则生成到当前项目的src/main/java下面
         * 如果projectPath不为空，则生成到projectPath/src/main/java下面
         */
        autoCodeConfig.setProjectPath(PROJECT_PATH);
        DbConfig dbConfig = DbConfig.builder()
                .url(DB_URL)
                .driver(DB_DRIVER)
                .user(DB_USER)
                .password(DB_PASSWORD)
                .dateType(DateType.ONLY_DATE)
                .tablePrefix(TABLE_PREFIX)
                .tableNameArray(TABLE_NAME_ARRAY)
                .build();
        autoCodeConfig.setDbConfig(dbConfig);
        // 执行代码生成
        WillAutoGenerator.run(autoCodeConfig);
    }


}
